System for commanding a robot

ABSTRACT

A system and method for commanding a robot by a programmable logic controller are disclosed. The system can include a programmable logic controller, at least two function blocks with at least one input for triggering an execution of a PLC function and at least one output indicating status of a function block. Each function block corresponds to a movement segment of a movement path of a robot to be commanded. A command queue can store and send orchestrated robot commands to the robot. Backwards motion of the robot can be performed by stopping execution of not yet executed robot commands for forward motion, and sequentially resending at least one executed robot command stored in the command queue in a contrawise sequence.

RELATED APPLICATION(S)

This application claims priority as a continuation application under 35U.S.C. §120 to PCT/EP2011/003754, which was filed as an InternationalApplication on Jul. 27, 2011, designating the U.S. The entire content ofthis application is hereby incorporated by reference in its entirety.

FIELD

The disclosure relates to a system for commanding a robot by aprogrammable logic controller (PLC), which includes a programmable logiccontroller, at least two function blocks with at least one input fortriggering an execution of a belonging PLC function and at least oneoutput indicating the status of the belonging function block. Eachfunction block corresponds to a movement segment of a movement path ofthe robot to be commanded, a robot controller interface, which canorchestrate the function blocks currently in execution into a robotcommand and a command queue, which can store the orchestrated robotcommands and send them sequentially to the robot.

BACKGROUND INFORMATION

It is known, that robots can be used in industrial applications, such aspick and place, machine tending and palletizing. Several robots can beworking together along a common production line, where each robot canperform a certain production step. The overall control of those robotscan by realized by a system, which can be based on a programmable logiccontroller (PLC). The programmable logic controller can coordinate thetriggering of the working sequences of the different robots dependent,for example, on the position of a conveyor system, where a workpiece tobe assembled can be transported along the different working positions ofthe robots. The programming of a PLC can be standardized in a widermanner, for example by IEC 61131, so a person who is skilled in PLCprogramming can be able to operate a wide range of different PLCcontrolled production lines concerning this issue. Furthermore, thedescription of the PLCOpen programming standard provides informationabout PLC programming, which can be known.

A robot can include a robot manipulator with several degrees of freedomin movement, for example, six or seven, whereas at the end of the robotmanipulator, an end effector like a gripper or another tool like awelding gun, for example. A robot manipulator with at least six degreesof freedom in movement can be able to position a belonging tool withineach coordinate of its working range in each orientation. Thus, acoordinate along a movement path of the robot tool can include sixvalues, three for the belonging coordinate and three for the belongingorientation. The working range of a robot can depend on the robot canbe, for example, within a radius of 1 m to 3 m around the belongingrobot base.

Kinematic mechanisms with less degree of freedom in movement such as amachine tool with only two degrees of freedom in movement can be seen asa robot within this disclosure.

The movement of the robot can be controlled by a dedicated robotcontroller, which includes on the one side a computer system and on theother side several amplifiers for the belonging drives of the robot.Each degree of freedom in movement can include a dedicated drive such asan electrical motor. The desired movement of the robot can be containedwithin a robot program, which can be stored on the computer system ofthe robot controller. The movement path can be composed by a sequence ofmovement sections between given coordinates, which can be specifiedwithin the robot program. Thus, a robot program can contain commandswith the content “linear move from current coordinate to coordinate [x1,x2, x3, o1, o2, o3] with speed [z]”, “linear move from currentcoordinate to current coordinate+delta [x1, x2, x3, o1, o2, o3] withspeed [z] or “circle around coordinate [x1, x2, x3] in plane [y1, y2,y3], start angle [a], end angle [b]”. The robot controller calculatesthe belonging control signals for the different motors, so that the tipof the robot manipulator executes the desired motion. Two or more robotscan be controlled by a common robot controller.

The programming of a robot can be a time consuming task. Since eachrobot manufacturer can provide a different programming language fortheir robots, the programming effort can also increase if differentkinds of robots are installed within the same production line of amanufacturing plant. Systems are known, which can allow the commandingof a robot by PLC. Such systems are described, for example, in patentapplications PCT/EP2011/000243 and PCT/EP2011/000244.

Within the known art, the movement operation of the robot respective tothe manipulator can be in the direction of the programmed movement pathrespective of its movement segments. Due to the sequentially linkage ofthe function blocks, a backwards motion may not be possible. Thisfunctionality can be used in some cases, for example after an emergencystop of a robot, where the robot has left the programmed movement pathand stopped at a stop position on or outside the movement path. Forresuming the robot program, the robot respectively, the tool centerpoint of the robot arm can be moved back from the stop position on ornear the programmed path to at least the point of interruption, whichcan be located on the movement path. Moreover, a movement backwardsalong one or more movement segments of the programmed movement path canbe desirable before resuming the program execution. Also during themanual teaching of a robot program using PLC such a backward movementcan be used.

SUMMARY

A system is disclosed for commanding a robot by a programmable logiccontroller, the system comprising: a programmable logic controller; atleast two function blocks with at least one input configured to triggeran execution of a programmable logic controller function block and atleast one output configured to indicate a status of the function block,and wherein each function block corresponds to a movement segment of amovement path of a robot to be commanded; a robot controller interfaceconfigured to orchestrate function blocks currently in execution into arobot command; a command queue configured to store the orchestratedrobot commands and send them sequentially to the robot, wherein thecommand queue is configured to keep at least a last executed robotcommand within a memory within the command queue, and wherein thecommand queue is configured to store information, which includes whethera robot command has not yet been executed, is currently in execution orhas been executed; and wherein the system is configured to control abackwards motion of the robot along a movement path by stopping theexecution of not yet executed robot commands for forward motion and bysequentially resending the at least one executed robot command stored inthe command queue in a contrawise sequence to the robot via theprogrammable logic controller.

A method is disclosed for commanding a robot using a system including aprogrammable logic controller, at least two function blocks with atleast one input configured to trigger an execution of a programmablelogic controller function and at least one output configured to indicatea status of a function block, and wherein each function blockcorresponds to a movement segment of a movement path of a robot to becommanded, a robot controller interface configured to orchestrate thefunction blocks currently in execution into a robot command, and acommand queue configured to store orchestrated robot commands and sendthem sequentially to the robot, the method comprising: temporarilyswitching the system into an operational mode; sequentiallyorchestrating robot commands into the command queue; sequentiallysending the robot commands to the robot; sequentially executing therobot commands by the robot; stopping the orchestrating, sending andexecution of the robot commands; switching the system into a backwardsmotion mode; temporarily deleting the orchestrated, but not yet executedrobot commands within the command queue; automatically identifying alast executed robot command within the command queue; sequentiallyresending at least a part of the executed robot commands stored in thecommand queue in a contrawise sequence to the robot via the programmablelogic controller; temporarily acknowledging, before resending, a robotcommand; backwards executing a robot command by the robot; temporarilydeleting the executed robot command, which has been resent, from thecommand queue; switching the system back to the operational mode; andrestarting normal operational mode from the actual robot position.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure is explained below with reference to the exemplaryembodiments, shown in the drawings. In the drawings:

FIG. 1 shows an exemplary system for commanding a robot by PLC; and

FIG. 2 shows an exemplary robot with movement path.

DETAILED DESCRIPTION

An exemplary system for commanding a robot by a programmable logiccontroller (PLC) can include at least two function blocks with at leastone input for triggering an execution of a belonging PLC function and atleast one output indicating the status of the belonging function block,whereas each function block corresponds to a movement segment of amovement path of the robot to be commanded, a robot controller interfacewhich orchestrates the function blocks currently in execution into arobot command, whereas the function blocks are linked sequentially, sothat the execution of a subsequent function block is triggered by theoutput of the preceding function block, whereas the orchestrated robotcommands are applicable to a robot controller and whereas the robotcontroller interface is prepared to receive a feedback signal of therobot controller, which influences the output status of the belongingfunction block.

In accordance with an exemplary embodiment, the disclosure provides aPLC based system for controlling or commanding a robot, which can alsobe suitable for backwards motion.

In accordance with an exemplary embodiment, the system can include acommand queue, which can keep at least the lastly executed robot commandwithin its memory, and wherein the command queue can store additionallythe information, whether a robot command has not yet been executed(waiting), is currently in execution (active) or has been executed(done) and that the system can control a backwards motion of the robotalong the movement path by stopping the execution of not yet executedrobot commands for forward motion and by sequentially resending at leastone executed robot command stored in the command queue in a contrawisesequence to the robot by using the PLC.

In accordance with an exemplary embodiment, the disclosure discloseskeeping the already executed robot commands, which execution can bereported from the robot controller to the PLC, within the command queue.Those commands can, for example, be eliminated from the command queueafter their execution. Each robot command can correspond to a certainmovement segment of the movement path such as a linear section, a curveor a circle segment. Thus, the history of the lastly executed movementpath can be stored within the command queue, providing the framecoordinates for a backwards motion along the same path. For this reason,each robot command can be assigned within the command queue to one ofthe three states “waiting”, “active” and “done”. At minimum one executedrobot command with the status “done” can be provided within the commandqueue to have sufficient data for a backwards motion. For example, alarger number of executed robot commands such as 10, 20 or 50 can bestored within the command queue for a longer backwards motion.

According to the disclosure, the already executed robot commands fromthe command queue can be executed again by the robot, but in contrawisesequence. So the function block corresponding to lastly executed robotcommand can be re-executed first by the PLC. Thus in the next PLC cyclethe belonging function block can be triggered again and the belongingrobot command can be orchestrated in the command queue for furtherbackwards execution by the robot respectively the robot controller.Afterwards the second to last executed robot command can be executed inthe same way and so on. For example, only one robot command for backwardexecution can be currently within the command queue respectively andalso the motion queue of the robot controller, so that the procedure fora second backwards motion command can be started, when the procedure forthe first backwards motion command has been completed. Thus, a PLC basedrobot control can be enabled for backward motion.

In accordance with an exemplary embodiment, a dedicated operation modefor backward motion is disclosed. This can be initialized by atech-pendant for manually interaction, for example, which can be usedfor a robot. A teach pendant can enable the operator to be close to therobot while the robot can be taught or moved backwards. A backwardoperation mode can be initialized by pressing a certain button of theteach pendant to prohibit an unintentional backward movement. Forexample, the backward motion in the belonging mode can be combined witha significant lower movement speed, for example by a factor of ten, thanthe movement speed according to the robot program. Background can reducethe risks of collisions respectively to increase the reaction time forthe operator to stop the robot movement in case of an upcomingcollision.

According to an exemplary embodiment of the disclosure, an executedrobot command can be acknowledged before resending to the robotrespectively before re-orchestrating the robot command of the belongingfunction block into the command queue. The acknowledgement of each robotcommand respectively the belonging movement segment before itsindividual execution can reduce the risk of collisions or otherdangerous situations while moving backwards.

For example, all not yet executed robot commands for forward motion canbe deleted from the command queue in case of an intended backwardmotion. Those commands can be orchestrated into the command queue inexpectance of the normal execution of the motion program, which howeverhas been interrupted. After having finished the backwards motion andresuming the robot program, those robot commands can again bere-orchestrated into the command queue so the previously orchestratedand not yet executed robot commands can be useless. Moreover, they arecomplicating the orchestrating and execution of the robot commands forbackward motion.

According to an exemplary embodiment of the disclosure, the robot caninclude an internal backward motion functionality, which can beaddressed for backwards motion along the path of an incompletelyexecuted movement segment. For example, this can be useful when theforward execution of the robot program has been interrupted while arobot command was currently in execution so that the robot has broughtto stop in between the starting and end point of a movement segment.

The reason for using the backward motion functionality of a robot incase that the robot did not exactly stop on the start- orend-coordinates of a movement segment can be that the PLC based controlsystem does not know the exact stop position of the robot. Moreover, thecontrol system can execute either complete movement segments orincomplete linear movement segments in inverse direction. Hence, forexample, for using the backwards motion functionality of the robot,which can be a curved movement segment. Thus, in those cases it iseasier to use an existing backwards motion functionality of the robot tomove backwards. After having reached the end-coordinate of the precedingcomplete movement segment the PLC based backward motion control can beaddressed for further backwards motion.

In accordance with an exemplary embodiment of the disclosure, a requestfor backwards motion can be only executable, if at least one executedrobot command is available within the command queue, which has not yetbeen resend to the robot. For example, such a request might be triggeredby a teach pendant for controlling a stepwise backwards motion. In casethat such a backwards motion is not possible, for example, since theexecution of the robot program has not yet been started and no executedrobot command is stored within the command queue, the execution of sucha request can be denied by the system.

In an exemplary embodiment, coordinate data of the starting and/or endpoint of a movement segment represented by an already executed robotcommand can be swapped before resending it to the robot respectivelybefore re-execution of the belonging function block and re-orchestratingthe belonging robot command into the command queue. For example, forbackwards motion only one robot command shall be currently within thecommand queue. The next robot command for backwards motion can only bereleased for orchestrating in the command queue, when the precedingbackwards robot command has been executed.

A movement segment corresponds to a path segment, which can becharacterized by a starting coordinate, an end coordinate and a certainrule how to move in between those coordinates. For example, a coordinatefor a robot with six or more degrees of freedom in movement can includesix values, three for the position in the three dimensional space andthree for the orientation. A rule how to move can correspond to a robotcommand and can determine, whether the motion is linear, along a curveor along a circle segment or such. Since the motion along a movementsegment can be directed, it can be desirable to swap the starting andend coordinates to gain a homogenous backwards motion.

In accordance with an exemplary embodiment, coordinate data of thestarting point of a movement segment can be represented by thecoordinate data of the end point of the preceding movement segment. Forexample, all movement segments can be homogenously linked together sothat the coordinates can be over-redundant. In some cases, the robotcommands only use an end position since the current position is seen asthe starting point for the movement. Thus, the number of coordinate dataassociated with the robot commands can be reduced by assigning only theend coordinate of the movement to the robot command. For example, thiscan also be considered for the coordinate swap within the backwardmotion.

According to an exemplary embodiment of the disclosure, the commandqueue can be organized in the kind of a shifting register or a ringbuffer, so that the oldest robot command can be overwritten by thebelonging newest robot command. Dependent on the overall storagecapability of the command queue the length of the buffer for the storageof already executed robot commands can correspond to the difference ofthe length of the command queue to the number of robot commands, whichcan be orchestrated in advance into the command queue including therobot command, which can be currently in execution. So the completecurrently free storage capacity of the command queue can be used asbuffer for the storage of the already executed robot commands.

In accordance with an exemplary embodiment of the disclosure, anexecuted robot command within the command queue can be deleted afterresending. Since this robot command will not be re-used after resendingit is useless data within the command queue which might be hindering forthe further execution of the backwards motion. Thus, according toexemplary embodiments of the disclosure, only robot commands, whichmight be required for the further preceding of the robot program, areprovided within the command queue.

In accordance with an exemplary embodiment, the programmable logiccontroller and a robot controller for the robot to be commanded can beintegrated within a common data processing device, which can reduce theamount of hardware. Thus, the robot controller itself which can bedelivered together with the robot can include the PLC functionality. Forexample, both controller functionalities as a software function can beprovided on the same hardware platform or can be provide on differenthardware platforms in the same cabinet.

In accordance with an exemplary embodiment, a method for commanding arobot using a system is disclosed, including the steps of temporarilyswitching the system into a operational mode, sequentially orchestratingrobot commands into the command queue, sequentially sending the robotcommands to the robot, sequentially execution of the robot commands bythe robot, stop orchestrating, sending and execution of the robotcommands, switching the system into a backwards motion mode, temporarilydeleting the orchestrated, but not yet executed robot commands withinthe command queue, automatic identifying of the lastly executed robotcommand within the command queue, sequentially resending at least a partof the executed robot commands stored in the command queue in acontrawise sequence to the robot by using PLC, temporarily acknowledgebefore resending a robot command, backwards execution of the belongingrobot command by the robot, temporarily deleting the executed robotcommand, which has been resend, from the command queue, switching thesystem back to the operational mode, restarting normal operational modefrom the actual robot position.

In accordance with an exemplary embodiment, some of the featuresmentioned in this method can be optionally, for example, all featureswith “temporarily” but also the features concerning a dedicatedoperational and backwards motion mode.

But also additional features can be within the scope of the disclosure,for example, the automatic identifying of the robot command which wascurrently in execution when the system has been stopped. This can beused for a backward motion of the robot to the end coordinates of thelast preceding movement segment by using a backward motion functionalityof the robot itself.

FIG. 1 shows an exemplary system 10 for commanding a robot by PLC. Theprogrammable logic controller 72 can include four exemplary functionblocks 12, 14, 16, 18, which can be sequentially connected. Theexecution of the first function block 12 can be triggered by its input22, for example, by an external manual signal. The first output 42 ofthe function block can be connected to the trigger input 24 of thesubsequent function block 14. The first output 42 indicates in its TRUEstate, that the execution of the function block 12 has been started.Thus the subsequent second function block 14 can be executed immediatelyafter starting the preceding block 12. So the belonging robot commandscan be orchestrated rather simultaneously by the robot controllerinterface 20 into real robot commands. Both orchestrated commands can beapplied to the robot controller 79, which can include a motion queue forsequentially storing the robot-respectively motion commands.

A data connection line 48, which can be a fieldbus, which can be inbetween the programmable logic controller 72 and a robot controller 79.For example, the programmable logic controller and the robot controllercan be software modules on the same hardware platform, and wherein theconnection line 48 corresponds to a data exchange between the softwaremodules. The command queue can either be part of the programmable logiccontroller 72 itself, for example, as indicated with reference sign 40in this example, but it can also be integrated into an optional PLCinterface 30, which can coordinate the communication with theprogrammable logic controller 72.

Apart from the command queue 40 on the PLC side for storing orchestratedrobot commands, can include an additional motion queue on the robotcontroller 79 side for storing the belonging motion commands. Thus, thecommand queue 40 on the PLC side can contain codes for robot commandsand not directly the robot commands themselves. Those codes, which mightbe some numbers for example, can be easier to handle. The optional PLCinterface 30 translates those codes into the relevant robot commands 54,56, 58, 60, 62, 64 and provides them to the robot controller internalmotion queue.

The robot controller 79 can include a computing device with the abilityto store and execute a robot movement program. For example, theorchestrated motion commands 54, 56, 58, 60, 62, 64 can be sequentiallyintegrated into a motion queue of the executable robot program, so thatthe robot 70 executes sequentially those commands.

A third function block 16 can be triggered with its trigger input 26 bythe second output 44 of the second movement block 14. The second output44 encodes the second state, namely that the execution of the relevantmovement segment has been started. Thus, the robot command correspondingto the third function block 16 can be orchestrated into the commandqueue after the robot 70 has started the execution of the movementsegment corresponding to the second function block 14. The informationthat the execution has already been started has been provided by thecommunication line 48 from the robot controller 79 to the programmablelogic controller 72 in the meanwhile.

A fourth function block 18 can be triggered with its trigger input 28 bythe third output 46 of the third function block 16. The third output 46can encode the third state, namely that the execution of the movementsegment corresponding to the third movement block 16 has been finished.Thus, the relevant robot command cannot be orchestrated into the commandqueue until all previous commands within the command queue have beenexecuted by the robot 70. Therefore the robot motion will stop beforethe execution of the last robot command. For example, the datacommunication lines 32, 34, 36, 38 can be realized by a pure dataexchange within the programmable logic controller 72, for example byvariables. If the programmable logic controller would have been realizedby a dedicated physical hardware and not by a software module, thosedata communication lines would be real physically existing lines.

The command queue 40 of the programmable logic controller 72 can beorganized in the kind of a shifting register. Thus, the orchestratedrobot commands can be fed in sequentially at one end of the commandqueue 40, in this sketch at the top. Those robot commands, which are ina “waiting” state since they are not yet executed, are stored within thearea 74 of the shifting register. The length of the area 74 can bevariable, depending on how many robot commands in advance areorchestrated into the command queue. The command, which can be currentlyin execution and is in “active” state, can be currently stored withinthe area 76. The physical allocation of the area 76 can vary dependenton the number of not yet executed robot commands, which are stored inthe area 74. Each robot command can be associated with its currentstatus within the command queue 40.

According to the disclosure the already executed robot commands with“done” state can be stored respectively kept within the area 78 of theshifting register respectively within the command queue. According toknown art, the already executed robot commands would have beeneliminated from the command queue 40. Thus, by storing the executedrobot commands, history information of previously robot motion can beprovided.

In case of a system stops, the robot stops motion and the robot commandsaccording to the regular robot program are no longer orchestrated intothe command queue. Afterwards the robot can be switched into a backwardsmotion mode. Thus, the not yet executed robot commands within the area74 of the command queue respectively the shifting register will beeliminated since they are useless data. Subsequent the robot command,which was currently in execution during the system stop, can beautomatically determined within the area 76.

Then a robot command can be sent to the robot 30 robot controller 79 formoving the robot to the end coordinates of the movement segmentcorresponding to the lastly executed robot command, which is marked inthe figure with reference sign 78 a. In accordance with an exemplaryembodiment, the backwards motion functionality of the robot itself canbe applied since in this example the system for commanding a robot byPLC can be only to perform complete movement segments in backwardmotion.

In the next step the starting and end coordinates of the movementsegment corresponding to the lastly executed robot command 78 a can beswapped and the relevant function block can be re-executed whereas therelevant robot command is re-orchestrated in the command queue 40. Afteran acknowledgement by an operator, the command can, for example, be sentto the robot 70 robot controller 79 and executed as backward motion bythe robot 70. Optionally, the second to last executed robot command 78 band afterwards the third to last 78 c and fourth to last 78 d robotcommands can be handled in the same way.

After finishing the backwards motion the system can be switched back toregular operational mode. Then the program can be resumed from theactual position of the robot along the programmed path as describedbefore, namely by executing the relevant function blocks, orchestratingthe relevant robot commands into the command queue and executing thecommands by the robot.

FIG. 2 shows an exemplary robot with movement path in a sketch 80. Arobot 100 can be connected to a robot controller 102, which can beconnected to a not shown programmable logic controller. According to theintended movement path the robot 100 will move along a movement pathdefined by the coordinates 82, 84, 86, 88, 90 which build the movementsegments 92, 94, 96 and 98 in between them. Each coordinate 82, 84, 86,88, 90 can include at least including six coordinate values, three forthe coordinates in the XYZ directions and three for the orientation, andwhereas each coordinate can also include configuration data for therobot. For example, a robot can be commanded with less degree of freedomin movement by a programmable logic controller according to thedisclosure.

Thus, it will be appreciated by those skilled in the art that thepresent invention can be embodied in other specific forms withoutdeparting from the spirit or essential characteristics thereof. Thepresently disclosed embodiments are therefore considered in all respectsto be illustrative and not restricted. The scope of the invention isindicated by the appended claims rather than the foregoing descriptionand all changes that come within the meaning and range and equivalencethereof are intended to be embraced therein.

LIST OF REFERENCE SIGNS

-   10 exemplary system for commanding a robot by PLC-   12 first function block-   14 second function block-   16 third function block-   18 fourth function block-   20 robot controller interface-   22 trigger input of first function block-   24 trigger input of second function block-   26 trigger input of third function block-   28 trigger input of fourth function block-   30 PLC interface-   32 first data communication line-   34 second data communication line-   36 third data communication line-   38 fourth data communication line-   40 command queue-   42 first output of first function block-   44 second output of second function block-   46 third output of third function block-   48 fifth data communication line-   54 first robot command-   56 second robot command-   58 third robot command-   60 fourth robot command-   62 fifth robot command-   64 sixth robot command-   68 control line to robot-   70 first robot-   72 programmable logic controller-   74 robot commands not yet executed-   76 robot command in execution-   78 executed robot commands-   78 a lastly executed robot command-   78 b second to last executed robot command-   78 c third to last executed robot command-   78 d fourth to last executed robot command-   79 first robot controller-   80 exemplary robot with movement path-   82 first coordinate of movement path-   84 second coordinate of movement path-   86 third coordinate of movement path-   88 fourth coordinate of movement path-   90 fifth coordinate of movement path-   92 first movement segment-   94 second movement segment-   96 third movement segment-   98 fourth movement segment-   100 second robot-   102 second robot controller

What is claimed is:
 1. A system for commanding a robot by a programmablelogic controller, the system comprising: a programmable logiccontroller; at least two function blocks with at least one respectiveinput configured to trigger an execution of a programmable logiccontroller (PLC) function block and at least one respective outputconfigured to indicate a status of the respective function block, andwherein each function block corresponds to a movement segment of aprogrammed movement path of a robot to be commanded; a robot controllerinterface configured to orchestrate a PLC function block currently inexecution into a robot command; a command queue configured to store therespective orchestrated robot commands and for sending them sequentiallyto the robot for sequentially execution, wherein the command queue isconfigured to keep at least a last executed robot command within amemory within the command queue, and wherein the command queue isconfigured to store information, which includes whether a robot commandhas not yet been executed, is currently in execution or has beenexecuted; wherein the system is configured to control a backwards motionof the robot along a movement path by stopping the execution of not yetexecuted robot commands for forward motion and by sequentially resendingthe at least one executed robot command stored in the command queue in acontrawise sequence to the robot via the programmable logic controller;and the system is foreseen to delete all not yet executed robot commandsfor forward motion from the command queue in case of a backward motion.2. The system according to claim 1, comprising: an operation mode forbackward motion.
 3. The system according to claim 1, wherein an executedrobot command is acknowledged before resending the command to the robot.4. The system according to claim 1, wherein in combination with a robotwhich comprises: an internal backward motion functionality, which isconfigured to address backwards motion along a path of an incompletelyexecuted movement segment.
 5. The system according to claim 1, wherein arequest for backwards motion is only executable when at least oneexecuted robot command is available within the command queue which hasnot yet been resent to the robot.
 6. The system according to claim 1,wherein the programmable logic controller is configured to: swapcoordinate data of a starting and/or an end point of a movement segmentrepresented by an already executed robot command before resending thecommand to the robot.
 7. The system according to claim 6, wherein thecoordinate data of the starting point of the movement segment arerepresented by coordinate data of the end point of a preceding movementsegment.
 8. The system according to claim 1, comprising: a shiftingregister or a ring buffer, wherein the command queue is organized in theshifting register or the ring buffer, such that an oldest robot commandis overwritten by a newest robot command.
 9. The system according toclaim 1, wherein the programmable logic controller is configured todelete an executed robot command within the command queue afterresending.
 10. The system according to claim 1, comprising: a commondata processing device, wherein the programmable logic controller and arobot controller for the robot to be commanded are integrated within thecommon data processing device.
 11. A method for commanding a robot usinga system including a programmable logic controller, at least twofunction blocks with at least one respective input configured to triggeran execution of a programmable logic controller (PLC) function and atleast one respective output configured to indicate a status of arespective function block, and wherein each function block correspondsto a programmed movement segment of a movement path of a robot to becommanded, a robot controller interface configured to orchestrate a PLCfunction block currently in execution into a robot command, and acommand queue configured to store respective orchestrated robot commandsand for sending them sequentially to the robot for sequentiallyexecution, the method comprising: temporarily switching the system intoan operational mode; sequentially orchestrating robot commands into thecommand queue; sequentially sending the robot commands to the robot;sequentially executing the robot commands by the robot; stopping theorchestrating, sending and execution of the robot commands; switchingthe system into a backwards motion mode; temporarily deleting theorchestrated, but not yet executed robot commands within the commandqueue; automatically identifying a last executed robot command withinthe command queue; sequentially resending at least a part of theexecuted robot commands stored in the command queue in a contrawisesequence to the robot via the programmable logic controller; temporarilyacknowledging, before resending, a robot command; backwards executing arobot command by the robot; temporarily deleting the executed robotcommand, which has been resent, from the command queue; switching thesystem back to the operational mode; and restarting normal operationalmode from the actual robot position.
 12. The method of claim 11,comprising: configuring the command queue to keep at least a lastexecuted robot command within a memory within the command queue.
 13. Themethod of claim 12, comprising: configuring the command queue to storeinformation, which includes whether a robot command has not yet beenexecuted, is currently in execution or has been executed.
 14. The methodof claim 13, comprising: configuring the system to control backwardsmotion of the robot along a movement path by stopping execution of notyet executed robot commands for forward motion.